package com.vca.service.dao.order;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vca.common.model.order.StoreOrderInfo;
import com.vca.common.response.WriteOffRecordResponse;
import com.vca.common.vo.OrderGroupByAttrVo;
import com.vca.common.vo.OrderWriteOff;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

import java.math.BigDecimal;
import java.util.List;

/**
 * 订单购物详情表 Mapper 接口
 */
public interface StoreOrderInfoDao extends BaseMapper<StoreOrderInfo> {

    /**
     * 根据时间、商品id获取销售件数
     * @param date 时间，格式'yyyy-MM-dd'
     * @param proId 商品id
     */
    Integer getSalesNumByDateAndProductId(@Param("date") String date, @Param("proId")  Integer proId);

    /**
     * 根据时间、商品id获取销售额
     * @param date 时间，格式'yyyy-MM-dd'
     * @param proId 商品id
     */
    BigDecimal getSalesByDateAndProductId(@Param("date") String date, @Param("proId")  Integer proId);


    /**
     * 获取我预约的项目
     * @param uid
     * @param type
     * @return
     */
    List<StoreOrderInfo> getLecturerByUid(@Param("uid") Integer uid, @Param("type")  List<Integer> type);


    /**
    * @Description: 核销记录
    * @Author: xyg
    * @Date: 2022/11/29
    */
    List<WriteOffRecordResponse> getWriterOffInfo(@Param("startTime") String startTime, @Param("endTime")  String endTime,
                                                  @Param("orderNo") String orderNo,
                                                  @Param("productName")  String productName,
                                                  @Param("lecturerPhone") String lecturerPhone,
                                                  @Param("realName")  String realName,
                                                  @Param("schedulingDateStart") String schedulingDateStart, @Param("schedulingDateEnd") String schedulingDateEnd,
                                                  @Param("type") Integer type);


    List<StoreOrderInfo> getWriterOffOrder(@Param("uid") Integer uid,@Param("type")  List<Integer> type,
                                           @Param("startTime") String startTime, @Param("endTime")  String endTime);

    List<StoreOrderInfo> refundList(@Param("startTime") String startTime, @Param("endTime")  String endTime);

    List<StoreOrderInfo> couponRefundList(@Param("startTime") String startTime, @Param("endTime")  String endTime);

    List<StoreOrderInfo> cardRefundList(@Param("startTime") String startTime, @Param("endTime")  String endTime);
}
